{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt \n",
    "from sklearn.preprocessing import PolynomialFeatures  # 生成多项式\n",
    "from sklearn.linear_model import LinearRegression"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![avatar](img/1.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 载入数据，职位与薪水的比列csv，多项式曲线表示\n",
    "data = np.genfromtxt(\"job.csv\", delimiter=\",\")\n",
    "x_data = data[1:,1]\n",
    "y_data = data[1:,2]\n",
    "plt.scatter(x_data,y_data)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_data = x_data[:,np.newaxis] # 加上维度，满足sklearn数据需求\n",
    "y_data = y_data[:,np.newaxis]\n",
    "# x_data1 = data[1:,1,np.newaxis]\n",
    "# y_data1 = data[1:,2,newaxis]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.],\n",
       "       [ 2.],\n",
       "       [ 3.],\n",
       "       [ 4.],\n",
       "       [ 5.],\n",
       "       [ 6.],\n",
       "       [ 7.],\n",
       "       [ 8.],\n",
       "       [ 9.],\n",
       "       [10.]])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 创建并拟合模型，sklearn要求制定数据格式，\n",
    "model = LinearRegression()\n",
    "model.fit(x_data, y_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 画图\n",
    "plt.plot(x_data, y_data, 'b.')\n",
    "plt.plot(x_data, model.predict(x_data), 'r')\n",
    "plt.show()  # 这是线性回归的预测，使用sklearn方法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 关键步骤\n",
    "# 定义多项式回归,degree的值可以调节多项式的特征\n",
    "poly_reg  = PolynomialFeatures(degree=5)   # 见之前导入的东西\n",
    "# 特征处理\n",
    "x_poly = poly_reg.fit_transform(x_data)\n",
    "# 定义回归模型\n",
    "lin_reg = LinearRegression()\n",
    "# 训练模型\n",
    "lin_reg.fit(x_poly, y_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1.0000e+00, 1.0000e+00, 1.0000e+00, 1.0000e+00, 1.0000e+00,\n",
       "        1.0000e+00],\n",
       "       [1.0000e+00, 2.0000e+00, 4.0000e+00, 8.0000e+00, 1.6000e+01,\n",
       "        3.2000e+01],\n",
       "       [1.0000e+00, 3.0000e+00, 9.0000e+00, 2.7000e+01, 8.1000e+01,\n",
       "        2.4300e+02],\n",
       "       [1.0000e+00, 4.0000e+00, 1.6000e+01, 6.4000e+01, 2.5600e+02,\n",
       "        1.0240e+03],\n",
       "       [1.0000e+00, 5.0000e+00, 2.5000e+01, 1.2500e+02, 6.2500e+02,\n",
       "        3.1250e+03],\n",
       "       [1.0000e+00, 6.0000e+00, 3.6000e+01, 2.1600e+02, 1.2960e+03,\n",
       "        7.7760e+03],\n",
       "       [1.0000e+00, 7.0000e+00, 4.9000e+01, 3.4300e+02, 2.4010e+03,\n",
       "        1.6807e+04],\n",
       "       [1.0000e+00, 8.0000e+00, 6.4000e+01, 5.1200e+02, 4.0960e+03,\n",
       "        3.2768e+04],\n",
       "       [1.0000e+00, 9.0000e+00, 8.1000e+01, 7.2900e+02, 6.5610e+03,\n",
       "        5.9049e+04],\n",
       "       [1.0000e+00, 1.0000e+01, 1.0000e+02, 1.0000e+03, 1.0000e+04,\n",
       "        1.0000e+05]])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_poly"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 画图\n",
    "plt.plot(x_data, y_data, 'b.')\n",
    "# 必须先特征处理后才能再预测\n",
    "# 曲线不够平滑的原因是x_data只取了10个点，来划线，所以不是很平滑\n",
    "plt.plot(x_data, lin_reg.predict(poly_reg.fit_transform(x_data)), c='r')  # 就是x_poly\n",
    "plt.title('Truth or Bluff (Polynomial Regression)')\n",
    "plt.xlabel('Position level')\n",
    "plt.ylabel('Salary')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 画图\n",
    "plt.plot(x_data, y_data, 'b.')\n",
    "x_test = np.linspace(1,10,100)  # 1-10，取100个点。用100个点画出的线比较平滑\n",
    "x_test = x_test[:,np.newaxis]  # 加入维度，满足sklearn\n",
    "plt.plot(x_test, lin_reg.predict(poly_reg.fit_transform(x_test)), c='r')\n",
    "plt.title('Truth or Bluff (Polynomial Regression)')\n",
    "plt.xlabel('Position level')\n",
    "plt.ylabel('Salary')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1.        ,  1.09090909,  1.18181818,  1.27272727,  1.36363636,\n",
       "        1.45454545,  1.54545455,  1.63636364,  1.72727273,  1.81818182,\n",
       "        1.90909091,  2.        ,  2.09090909,  2.18181818,  2.27272727,\n",
       "        2.36363636,  2.45454545,  2.54545455,  2.63636364,  2.72727273,\n",
       "        2.81818182,  2.90909091,  3.        ,  3.09090909,  3.18181818,\n",
       "        3.27272727,  3.36363636,  3.45454545,  3.54545455,  3.63636364,\n",
       "        3.72727273,  3.81818182,  3.90909091,  4.        ,  4.09090909,\n",
       "        4.18181818,  4.27272727,  4.36363636,  4.45454545,  4.54545455,\n",
       "        4.63636364,  4.72727273,  4.81818182,  4.90909091,  5.        ,\n",
       "        5.09090909,  5.18181818,  5.27272727,  5.36363636,  5.45454545,\n",
       "        5.54545455,  5.63636364,  5.72727273,  5.81818182,  5.90909091,\n",
       "        6.        ,  6.09090909,  6.18181818,  6.27272727,  6.36363636,\n",
       "        6.45454545,  6.54545455,  6.63636364,  6.72727273,  6.81818182,\n",
       "        6.90909091,  7.        ,  7.09090909,  7.18181818,  7.27272727,\n",
       "        7.36363636,  7.45454545,  7.54545455,  7.63636364,  7.72727273,\n",
       "        7.81818182,  7.90909091,  8.        ,  8.09090909,  8.18181818,\n",
       "        8.27272727,  8.36363636,  8.45454545,  8.54545455,  8.63636364,\n",
       "        8.72727273,  8.81818182,  8.90909091,  9.        ,  9.09090909,\n",
       "        9.18181818,  9.27272727,  9.36363636,  9.45454545,  9.54545455,\n",
       "        9.63636364,  9.72727273,  9.81818182,  9.90909091, 10.        ])"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.linspace(1,10,100) # 1-10均匀100个点"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
